package com.gitee.dubboOps;

import com.gitee.dubboOps.model.ServiceDO;
import com.gitee.dubboOps.param.GenericInvokeMetadata;
import com.gitee.dubboOps.param.ServiceInvokeParam;
import com.gitee.dubboOps.param.ServiceInvokeResult;
import com.taobao.jaket.model.ServiceDefinition;

import java.util.Collection;
import java.util.List;

public interface ServiceService {

    void storeTestData(String envName, String serviceName, String methodSignature, String invokeParam) throws Exception;

    String loadTestData(String envName, String serviceName, String methodSignature) throws Exception;

    void removeCache(String env, String serviceName) throws Exception;

    Collection<ServiceDO> getServiceList() throws Exception;

    List<String> getMethodList(String env, String serviceName) throws Exception;

    ServiceDefinition getServiceMetadata(String envName, String serviceName) throws Exception;

    ServiceInvokeResult invoke(ServiceInvokeParam invokeParam) throws Exception;

    GenericInvokeMetadata getGenericInvokeMetadata(String envName, String serviceName, String methodSignature) throws Exception;

    String getInvokeMetaJson(String envName, String serviceName, String methodSignature) throws Exception;

    ServiceDefinition getServiceDefinitonFromJar(List<String> jarPaths, String serviceName) throws Exception;

    void parseJar(String env, List<String> jarPaths, String serviceName) throws Exception;
}
